#ifndef ESCENARIO_H_
#define ESCENARIO_H_

#include "figuras\figura.h"
#include <list>
#include <vector>
#include "logger.h"
#include "excepciones\errorInesperadoException.h"


typedef std::list<figura*>  listaFiguras;

class escenario {

private:
	int velocidad; // Velocidad del juego
	std::vector<listaFiguras*> levels_list;
	int levels;
	int currentLevel;

public:
	escenario::escenario();
	escenario::~escenario();
	mostrar_lista_fig(int level); // Funcion temporaria para debug
	graficar(int level);
	listaFiguras* getListaFiguras(int level);
	void agregarFigura(figura* fig, int level);

	//se agrega una figura al nivel actual
	void agregarFigura(figura* fig);

	void agregarNivel(listaFiguras* IN_listafig);
	int get_cant_levels();

	int getCurrentLevel() {
		return this->currentLevel;
	}


	void setCurrentLevel(int lvl) {
		this->currentLevel = lvl;
	}

	//Bonus//

	int Bonus_Posicion;
	int	Bonus_Type;
	char * Bonus_IdFig;

	void setBonus(int b_type); // Le pone el bonus b_type a una figura random
	void resetBonus(); // Saca el bonus
	int getRandom(int lowest, int highest);

};


#endif